package cn.iocoder.yudao.module.enterprise.controller.admin.emissionsource.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;

/**
 * 排放源 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class EmissionSourceBaseVO {

    @Schema(description = "排放源名称", required = true)
    @NotNull(message = "排放源名称不能为空")
    private String name;

    @Schema(description = "排放设施", required = true)
    @NotNull(message = "排放设施不能为空")
    private String facility;

    @Schema(description = "GHG分类", required = true)
    @NotNull(message = "GHG分类不能为空")
    private String ghgClassification;

    @Schema(description = "GHG类别", required = true)
    @NotNull(message = "GHG类别不能为空")
    private String ghgCategory;

    @Schema(description = "ISO分类", required = true)
    @NotNull(message = "ISO分类不能为空")
    private String isoClassification;

    @Schema(description = "ISO类别", required = true)
    @NotNull(message = "ISO类别不能为空")
    private String isoCategory;

    @Schema(description = "活动数据单位", required = true)
    @NotNull(message = "活动数据单位不能为空")
    private String dataUnit;

    @Schema(description = "活动数据记录方式", required = true)
    @NotNull(message = "活动数据记录方式不能为空")
    private String dataRecordMethod;

    @Schema(description = "活动数据保存部门", required = true)
    @NotNull(message = "活动数据保存部门不能为空")
    private String dataRetentionDept;

    @Schema(description = "活动数据类别", required = true)
    @NotNull(message = "活动数据类别不能为空")
    private String dataCategory;

    @Schema(description = "活动数据评分", required = true)
    @NotNull(message = "活动数据评分不能为空")
    private Integer dataScore;

    @Schema(description = "二氧化碳当量", required = true)
    @NotNull(message = "二氧化碳当量不能为空")
    private Double co2e;

    @Schema(description = "因子单位（分子）", required = true)
    @NotNull(message = "因子单位（分子）不能为空")
    private String unitLeft;

    @Schema(description = "因子单位（分母）", required = true)
    @NotNull(message = "因子单位（分母）不能为空")
    private String unitRight;

    @Schema(description = "单位换算比例", required = true)
    @NotNull(message = "单位换算比例不能为空")
    private Double unitConversion;

    @Schema(description = "GWP信息", required = true)
    @NotNull(message = "GWP信息不能为空")
    private Integer gwp;

    @Schema(description = "排放因子类别", required = true)
    @NotNull(message = "排放因子类别不能为空")
    private String factorCategory;

    @Schema(description = "排放因子评分", required = true)
    @NotNull(message = "排放因子评分不能为空")
    private Integer factorScore;

    @Schema(description = "排放因子来源", required = true)
    @NotNull(message = "排放因子来源不能为空")
    private String factorSource;

    @Schema(description = "发布年份", required = true)
    @NotNull(message = "发布年份不能为空")
    private String releaseYear;

}
